home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / lang / c-part1 / 3264 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  1.4 KB

  1. Path: erich.triumf.ca!bennett
  2. From: bennett@erich.triumf.ca (P.Bennett)
  3. Newsgroups: comp.lang.c
  4. Subject: Re: division problem
  5. Date: 26 Jan 1996 22:08 PST
  6. Organization: TRIUMF: Tri-University Meson Facility
  7. Distribution: world
  8. Message-ID: <26JAN199622082450@erich.triumf.ca>
  9. References: <31097D77.11AA@rain.org>
  10. NNTP-Posting-Host: ftp.triumf.ca
  11. News-Software: VAX/VMS VNEWS 1.50    
  12.  
  13. In article <31097D77.11AA@rain.org>, tpaul <tpaul@rain.org> writes...
  14. >Can anyone show me why this does not work?  I am a beginner.
  15. >#include <stdio.h>
  16. >main ()
  17. >{
  18. >    int fahrenheit, celsius;
  19. >    
  20. >    printf("Fahrenheit temperature =?";
  21. >    scanf("%d",fahrenheit);
  22. >    celsius = 5/9*(fahrenheit-32);
  23.  
  24. This calculation will be done with ints, and 5/9 in integer arithmetic is 0.
  25.  
  26. Also (if I have the precedence rules right), it will be done as:
  27.         5
  28.     ----------------------
  29.     9 * (fahrenheit - 32)
  30.  
  31. In order to make it work, you could do:
  32.     celsius = (int)((5.0/9.0) * (fahrenheit - 32))
  33. The 5.0/9.0 give a meaningful result, and force the multiplication to be done
  34. with floats. The (int) will convert the result back to an int.
  35.  
  36.  
  37.  
  38. Peter Bennett VE7CEI                | Vessels shall be deemed to be in sight
  39. Internet: bennett@triumf.ca         | of one another only when one can be
  40. Packet: ve7cei@ve7kit.#vanc.bc.ca   | observed visually from the other
  41. TRIUMF, Vancouver, B.C., Canada     |                          ColRegs 3(k)
  42. GPS and NMEA info and programs: ftp://sundae.triumf.ca/pub/peter/index.html
  43.  
  44.